
using System;
using System.Collections.Generic;

namespace Subsync
{
	abstract public class App
	{
		//delegate to store the function pointer
		public delegate void initPointer(Dictionary<string,List<object>> s);
		
		/// <summary>
		/// To tell the CLI which tokens to look out for
		/// </summary>
		/// <returns>
		/// A <see cref="Dictionary"/>
		/// </returns>
		public abstract Dictionary<string, List<object>> getTokens ();
		
		/// <summary>
		/// Points tokens to the right function so it can dispatch.
		/// </summary>
		/// <returns>
		/// A <see cref="List"/>
		/// </returns>
		public abstract List<KeyValuePair<string,initPointer>> getInitPointers();
	}
}
